home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -screenplay- / hd_installers / -whdload- / whdload_dev / src / slave-examples / winditup.asm < prev   
Assembly Source File  |  2000-02-28  |  3KB  |  138 lines

  1. ;*---------------------------------------------------------------------------
  2. ;  :Program.    winditup.asm
  3. ;  :Contents.    Slave for "Wind it up" from XYMOX Project
  4. ;  :Author.    wepl <wepl@whdload.org>
  5. ;  :Version.    $Id: winditup.asm 1.6 2000/01/23 21:02:51 jah Exp jah $
  6. ;  :History.    04.09.97 start
  7. ;        09.05.99 adapted for WHDload 10.0
  8. ;  :Requires.    -
  9. ;  :Copyright.    Public Domain
  10. ;  :Language.    68000 Assembler
  11. ;  :Translator.    Barfly V2.9
  12. ;  :To Do.
  13. ;---------------------------------------------------------------------------*
  14.  
  15.     INCDIR    Includes:
  16.     INCLUDE    whdload.i
  17.     INCLUDE    whdmacros.i
  18.  
  19.     IFD BARFLY
  20.     OUTPUT    "dwart:xymox/winditup/WindItUp.Slave"
  21.     BOPT    O+                ;enable optimizing
  22.     BOPT    OG+                ;enable optimizing
  23.     BOPT    ODd-                ;disable mul optimizing
  24.     BOPT    ODe-                ;disable mul optimizing
  25.     BOPT    w4-                ;disable 64k warnings
  26.     SUPER                    ;disable supervisor warnings
  27.     ENDC
  28.  
  29. ;======================================================================
  30.  
  31. _base        SLAVE_HEADER            ;ws_Security + ws_ID
  32.         dc.w    10            ;ws_Version
  33.         dc.w    WHDLF_Disk|WHDLF_NoError ;ws_flags
  34.         dc.l    $fb000            ;ws_BaseMemSize
  35.         dc.l    0            ;ws_ExecInstall
  36.         dc.w    _Start-_base        ;ws_GameLoader
  37.         dc.w    0            ;ws_CurrentDir
  38.         dc.w    0            ;ws_DontCache
  39. _keydebug    dc.b    0            ;ws_keydebug
  40. _keyexit    dc.b    $59            ;ws_keyexit = F10
  41. _expmem        dc.l    0            ;ws_ExpMem
  42.         dc.w    _name-_base        ;ws_name
  43.         dc.w    _copy-_base        ;ws_copy
  44.         dc.w    _info-_base        ;ws_info
  45.  
  46. ;============================================================================
  47.  
  48.     IFD    BARFLY
  49.     IFND    .passchk
  50.     DOSCMD    "WDate  >T:date"
  51. .passchk
  52.     ENDC
  53.     ENDC
  54.  
  55. _name        dc.b    "Wind it up - Megamix 93",0
  56. _copy        dc.b    "1993 XYMOX Project",0
  57. _info        dc.b    "installed by Wepl",10
  58.         dc.b    "Version 1.4 "
  59.     IFD    BARFLY
  60.         INCBIN    "T:date"
  61.     ENDC
  62.         dc.b    0
  63.     EVEN
  64.  
  65. ;======================================================================
  66. _Start    ;    A0 = resident loader
  67. ;======================================================================
  68.  
  69.         lea    (_resload,pc),a1
  70.         move.l    a0,(a1)            ;save for later use
  71.  
  72.         move.l    #CACRF_EnableI,d0    ;enable instruction cache
  73.         move.l    d0,d1            ;mask
  74.         jsr    (resload_SetCACR,a0)
  75.  
  76.     ;install keyboard quitter
  77.         bsr    _SetupKeyboard
  78.  
  79. _restart    moveq    #0,d0            ;offset
  80.         move.l    #$5800,d1        ;size
  81.         moveq    #1,d2            ;disk
  82.         lea    $4fc04,a0        ;destination
  83.         move.l    (_resload,pc),a2
  84.         jsr    (resload_DiskLoad,a2)
  85.  
  86.         patch    $50154,_1
  87.         jmp    $50000            ;decrunch
  88.  
  89. _1        patch    $13a4e,_loader
  90.         patch    $21a2,_2
  91.         jmp    $2008
  92.  
  93. _2        patch    $80176,_3
  94.         jmp    $80000            ;decrunch
  95.  
  96. _3        patch    $fa5b2,_loader
  97.         patch    $f012c,_4
  98.         jmp    $f0008
  99.  
  100. _4        clr.w    $526fe            ;preserve ints
  101.         patch    $52880,_5
  102.         jmp    $52500
  103.  
  104. _5        move.w    #250,d2
  105. .wait        waitvb    a0
  106.         dbf    d2,.wait
  107.         bra    _restart
  108.  
  109. _loader        move.w    #200,d2
  110. .wait        waitvb
  111.         dbf    d2,.wait
  112.         mulu    #512*11,d0        ;offset
  113.         mulu    #512*11,d1        ;size
  114.         moveq    #1,d2            ;disk
  115.         move.l    (_resload,pc),a2
  116.         jmp    (resload_DiskLoad,a2)
  117.  
  118. ;--------------------------------
  119.  
  120. _resload    dc.l    0        ;address of resident loader
  121.  
  122. ;--------------------------------
  123.  
  124. _exit        pea    TDREASON_OK
  125.         bra    _end
  126. _debug        pea    TDREASON_DEBUG
  127. _end        move.l    (_resload,pc),-(a7)
  128.         add.l    #resload_Abort,(a7)
  129.         rts
  130.  
  131. ;======================================================================
  132.  
  133.     INCLUDE    Sources:whdload/keyboard.s
  134.  
  135. ;======================================================================
  136.  
  137.     END
  138.